﻿#region

using System;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Security.Permissions;
#endregion

[assembly: AssemblyTitle("SharpObservation")]
[assembly: AssemblyCompany("Mark White")]
[assembly: AssemblyDescription("Library for simplified Dispose pattern, property change notifications, weak events, asynchronous delegates and more.")]
#if !DEBUG
[assembly: AssemblyConfiguration("Release")]
#endif
[assembly: AssemblyProduct("SharpObservation")]
[assembly: AssemblyCopyright("Open Source License")]
[assembly: AssemblyTrademark("None")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("aa0518f7-b507-4d1d-b7a7-56d8be3f1373")]
[assembly: AssemblyVersion("1.1.910")]
[assembly: AssemblyFileVersion("1.1.910.0")]
[assembly: CLSCompliant(true)]

namespace SharpObservation
{
    /// <summary> 
    /// Provides types to implement common coding patterns efficiently.
    /// </summary> 
    /// <remarks>
    /// <para>
    /// The classes defined in this namespace are very simple - each one fulfills a common coding pattern, such that
    /// developers are able to write less code.</para>
    /// <para>
    /// The seemingly mundane disposable pattern is extended with IDisposalInfo and IDisposedEvent, which allows callers 
    /// to detect which an instance has been disposed (and should be left alone), as well as to decouple from an instance 
    /// when it is disposing. Base classes which implement this pattern are:
    /// </para>
    /// <list type="bullet">
    /// <item>DisposableObject - IDisposalInfo</item>
    /// <item>DisposableEventsObject - IDisposalInfo and IDisposedEvent</item>
    /// <item>DisposableObservableObject - IDisposalInfo and IDisposedEvent</item>
    /// </list>
    /// <para>
    /// The ObservableObject and DisposableObservableObject implement the property change notification pattern
    /// in the most efficient and extendible means possible for a centralized implementation. More importantly,
    /// these classes pass the richer information to event subscribers about the before and after value of changed 
    /// properties, and also expose Undo functionality via way of UndoablePropertyChangedEventArgs   
    /// </para>
    /// <para>
    /// ObservableObject and DisposableObservableObject also define the property IsNotifyingActive,
    /// which allows calling code to detect whether any events handlers are listening for property changes. This assists
    /// in data virtualization scenarios where code needs to determine whether an object is currently being observed 
    /// by a user interface.
    /// </para>
    /// </remarks>
    [System.Runtime.CompilerServices.CompilerGenerated]
    abstract class NamespaceDoc {}      // required by SandCastle
}